package Buffer2;

import java.io.*;

public class Test1 {//定义一个测试类
    public static void main(String[] args) throws Exception {//main方法发，抛出异常
        //创建文件源路径对象
        File   srcfolder=new File("E:\\itcast");//创建源文件目录对象
        String srcname = srcfolder.getName();//获取源文件目录的名称
        File   destfolder=new File("IO",srcname);//创建写入数据目的地路径，本模块下+名称是源文件名称
        if(!destfolder.exists()){//判断新创建的文件目录是否存在
            destfolder.mkdirs();//如果不存在则进行创建
        }
        File[] files = srcfolder.listFiles();//遍历元文件目录得到目录下每一个文件
        for (File file : files) {//
            String name = file.getName();//得到目的地文件的每一文件名称后
            File   destFile= new File(destfolder,name);//再次将得到的源文件每一个文件的名称添加到目的地文件目录下
            copyFile(file,destFile);//调用方法
        }

    }

    private static void copyFile(File file, File destfolder1) throws Exception {
        //定义方法，源文件文件每一个文件名称作为第一个参数
           //目的地文件码目录作为第二个参数
        BufferedInputStream   bis=new BufferedInputStream(new FileInputStream(file));//创建字节缓冲输入流对象
        BufferedOutputStream  bos=new BufferedOutputStream(new FileOutputStream(destfolder1));//创建字节输出流对象
        byte[] bytes =new byte[1024];//定义读取数据的长度为1024
        int ten;//定义保存读取数据的有效数据长度变量
        while((ten=bis.read(bytes))!=-1){//使用while循环读取数据
            bos.write(bytes,0,ten);//通过字节缓冲输出流写入数据
        }
        bis.close();//关闭资源
        bos.close();//关闭资源



    }

}
